]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
workspaceThumbnails: Delay workspace removal while collapsing
authorFlorian Müllner <fmuellner@gnome.org>
Wed, 17 Feb 2021 08:54:14 +0000 (09:54 +0100)
committerFlorian Müllner <fmuellner@gnome.org>
Fri, 19 Feb 2021 00:13:05 +0000 (01:13 +0100)
Animating a thumbnail removal while also collapsing the minimap
itself doesn't look good, so keep the stale thumbnail until the
minimap is hidden.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3739

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1696>

js/ui/workspaceThumbnail.js

index b06e60209af8d2dc549fbf28405f66c2fb467739..03e97f1752a9ad1a078fe5912289ef9638a2eb34 100644 (file)
@@ -691,6 +691,11 @@ var ThumbnailsBox = GObject.registerClass({
         global.display.connect('workareas-changed',
                                this._updatePorthole.bind(this));
 
+        this.connect('notify::visible', () => {
+            if (!this.visible)
+                this._queueUpdateStates();
+        });
+
         this._switchWorkspaceNotifyId = 0;
         this._nWorkspacesNotifyId = 0;
         this._syncStackingId = 0;
@@ -1122,6 +1127,10 @@ var ThumbnailsBox = GObject.registerClass({
         if (this._animatingIndicator)
             return;
 
+        // Likewise if we are in the process of hiding
+        if (!this._shouldShow && this.visible)
+            return;
+
         // Then slide out any thumbnails that have been destroyed
         this._iterateStateThumbnails(ThumbnailState.REMOVING, thumbnail => {
             this._setThumbnailState(thumbnail, ThumbnailState.ANIMATING_OUT);